package com.chen.order.service;

import com.chen.model.dto.h5.OrderInfoDto;
import com.chen.model.entity.order.OrderInfo;
import com.chen.model.vo.h5.TradeVo;
import com.github.pagehelper.PageInfo;

/**
 * @author cgj
 * @date 4/26/25 10:23 AM
 */
public interface OrderService {
    /**
     * 结算页
     * @return
     */
    TradeVo trade();

    /**
     * 返回订单号(订单id)
     * @param orderInfoDto
     * @return
     */
    Long submitOrder(OrderInfoDto orderInfoDto);

    /**
     * 直接购买 不进入购物车
     * @param skuId
     * @return
     */
    TradeVo buy(Long skuId);

    /*
       根据订单id,获取订单信息
     */
    OrderInfo getOrderInfo(Long orderId);

    /**
     * 根据订单状态,查询订单信息
     * @param pageNum
     * @param pageSize
     * @param orderStatus
     * @return
     */
    PageInfo selectByOrderStatus(Integer pageNum, Integer pageSize, Integer orderStatus);

    /**
     * 根据orderNo查询订单信息
     * @param orderNo
     * @return
     */
    OrderInfo getOrderInfoByOrderNo(String orderNo);



    /**
     * 根据OrderNo修改订单的状态
     * @param orderStatus
     * @param orderNo
     */
    void updateOrderByOrderNo(Integer orderStatus, String orderNo);
}
